home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / gnu / amiga / gnnln920.lha / inline-2.0 / mathtrans.h < prev    next >
C/C++ Source or Header  |  1992-06-14  |  6KB  |  251 lines

  1. #ifndef _INLINE_MATHTRANS_H
  2. #define _INLINE_MATHTRANS_H
  3.  
  4. #include <sys/cdefs.h>
  5. #include <inline/stubs.h>
  6.  
  7. __BEGIN_DECLS
  8.  
  9. #ifndef BASE_EXT_DECL
  10. #define BASE_EXT_DECL extern struct MathTransBase*  MathTransBase;
  11. #endif
  12. #ifndef BASE_PAR_DECL
  13. #define BASE_PAR_DECL
  14. #define BASE_PAR_DECL0 void
  15. #endif
  16. #ifndef BASE_NAME
  17. #define BASE_NAME MathTransBase
  18. #endif
  19.  
  20. static __inline FLOAT 
  21. SPAcos (BASE_PAR_DECL FLOAT parm)
  22. {
  23.   BASE_EXT_DECL
  24.   register FLOAT  _res  __asm("d0");
  25.   register struct MathTransBase* a6 __asm("a6") = BASE_NAME;
  26.   register FLOAT d0 __asm("d0") = parm;
  27.   __asm __volatile ("jsr a6@(-0x78)"
  28.   : "=r" (_res)
  29.   : "r" (a6), "r" (d0)
  30.   : "a0","a1","d0","d1");
  31.   return _res;
  32. }
  33. static __inline FLOAT 
  34. SPAsin (BASE_PAR_DECL FLOAT parm)
  35. {
  36.   BASE_EXT_DECL
  37.   register FLOAT  _res  __asm("d0");
  38.   register struct MathTransBase* a6 __asm("a6") = BASE_NAME;
  39.   register FLOAT d0 __asm("d0") = parm;
  40.   __asm __volatile ("jsr a6@(-0x72)"
  41.   : "=r" (_res)
  42.   : "r" (a6), "r" (d0)
  43.   : "a0","a1","d0","d1");
  44.   return _res;
  45. }
  46. static __inline FLOAT 
  47. SPAtan (BASE_PAR_DECL FLOAT parm)
  48. {
  49.   BASE_EXT_DECL
  50.   register FLOAT  _res  __asm("d0");
  51.   register struct MathTransBase* a6 __asm("a6") = BASE_NAME;
  52.   register FLOAT d0 __asm("d0") = parm;
  53.   __asm __volatile ("jsr a6@(-0x1e)"
  54.   : "=r" (_res)
  55.   : "r" (a6), "r" (d0)
  56.   : "a0","a1","d0","d1");
  57.   return _res;
  58. }
  59. static __inline FLOAT 
  60. SPCos (BASE_PAR_DECL FLOAT parm)
  61. {
  62.   BASE_EXT_DECL
  63.   register FLOAT  _res  __asm("d0");
  64.   register struct MathTransBase* a6 __asm("a6") = BASE_NAME;
  65.   register FLOAT d0 __asm("d0") = parm;
  66.   __asm __volatile ("jsr a6@(-0x2a)"
  67.   : "=r" (_res)
  68.   : "r" (a6), "r" (d0)
  69.   : "a0","a1","d0","d1");
  70.   return _res;
  71. }
  72. static __inline FLOAT 
  73. SPCosh (BASE_PAR_DECL FLOAT parm)
  74. {
  75.   BASE_EXT_DECL
  76.   register FLOAT  _res  __asm("d0");
  77.   register struct MathTransBase* a6 __asm("a6") = BASE_NAME;
  78.   register FLOAT d0 __asm("d0") = parm;
  79.   __asm __volatile ("jsr a6@(-0x42)"
  80.   : "=r" (_res)
  81.   : "r" (a6), "r" (d0)
  82.   : "a0","a1","d0","d1");
  83.   return _res;
  84. }
  85. static __inline FLOAT 
  86. SPExp (BASE_PAR_DECL FLOAT parm)
  87. {
  88.   BASE_EXT_DECL
  89.   register FLOAT  _res  __asm("d0");
  90.   register struct MathTransBase* a6 __asm("a6") = BASE_NAME;
  91.   register FLOAT d0 __asm("d0") = parm;
  92.   __asm __volatile ("jsr a6@(-0x4e)"
  93.   : "=r" (_res)
  94.   : "r" (a6), "r" (d0)
  95.   : "a0","a1","d0","d1");
  96.   return _res;
  97. }
  98. static __inline FLOAT 
  99. SPFieee (BASE_PAR_DECL FLOAT parm)
  100. {
  101.   BASE_EXT_DECL
  102.   register FLOAT  _res  __asm("d0");
  103.   register struct MathTransBase* a6 __asm("a6") = BASE_NAME;
  104.   register FLOAT d0 __asm("d0") = parm;
  105.   __asm __volatile ("jsr a6@(-0x6c)"
  106.   : "=r" (_res)
  107.   : "r" (a6), "r" (d0)
  108.   : "a0","a1","d0","d1");
  109.   return _res;
  110. }
  111. static __inline FLOAT 
  112. SPLog (BASE_PAR_DECL FLOAT parm)
  113. {
  114.   BASE_EXT_DECL
  115.   register FLOAT  _res  __asm("d0");
  116.   register struct MathTransBase* a6 __asm("a6") = BASE_NAME;
  117.   register FLOAT d0 __asm("d0") = parm;
  118.   __asm __volatile ("jsr a6@(-0x54)"
  119.   : "=r" (_res)
  120.   : "r" (a6), "r" (d0)
  121.   : "a0","a1","d0","d1");
  122.   return _res;
  123. }
  124. static __inline FLOAT 
  125. SPLog10 (BASE_PAR_DECL FLOAT parm)
  126. {
  127.   BASE_EXT_DECL
  128.   register FLOAT  _res  __asm("d0");
  129.   register struct MathTransBase* a6 __asm("a6") = BASE_NAME;
  130.   register FLOAT d0 __asm("d0") = parm;
  131.   __asm __volatile ("jsr a6@(-0x84)"
  132.   : "=r" (_res)
  133.   : "r" (a6), "r" (d0)
  134.   : "a0","a1","d0","d1");
  135.   return _res;
  136. }
  137. static __inline FLOAT 
  138. SPPow (BASE_PAR_DECL FLOAT power,FLOAT arg)
  139. {
  140.   BASE_EXT_DECL
  141.   register FLOAT  _res  __asm("d0");
  142.   register struct MathTransBase* a6 __asm("a6") = BASE_NAME;
  143.   register FLOAT d1 __asm("d1") = power;
  144.   register FLOAT d0 __asm("d0") = arg;
  145.   __asm __volatile ("jsr a6@(-0x5a)"
  146.   : "=r" (_res)
  147.   : "r" (a6), "r" (d1), "r" (d0)
  148.   : "a0","a1","d0","d1");
  149.   return _res;
  150. }
  151. static __inline FLOAT 
  152. SPSin (BASE_PAR_DECL FLOAT parm)
  153. {
  154.   BASE_EXT_DECL
  155.   register FLOAT  _res  __asm("d0");
  156.   register struct MathTransBase* a6 __asm("a6") = BASE_NAME;
  157.   register FLOAT d0 __asm("d0") = parm;
  158.   __asm __volatile ("jsr a6@(-0x24)"
  159.   : "=r" (_res)
  160.   : "r" (a6), "r" (d0)
  161.   : "a0","a1","d0","d1");
  162.   return _res;
  163. }
  164. static __inline FLOAT 
  165. SPSincos (BASE_PAR_DECL FLOAT *cosResult,FLOAT parm)
  166. {
  167.   BASE_EXT_DECL
  168.   register FLOAT  _res  __asm("d0");
  169.   register struct MathTransBase* a6 __asm("a6") = BASE_NAME;
  170.   register FLOAT *d1 __asm("d1") = cosResult;
  171.   register FLOAT d0 __asm("d0") = parm;
  172.   __asm __volatile ("jsr a6@(-0x36)"
  173.   : "=r" (_res)
  174.   : "r" (a6), "r" (d1), "r" (d0)
  175.   : "a0","a1","d0","d1");
  176.   return _res;
  177. }
  178. static __inline FLOAT 
  179. SPSinh (BASE_PAR_DECL FLOAT parm)
  180. {
  181.   BASE_EXT_DECL
  182.   register FLOAT  _res  __asm("d0");
  183.   register struct MathTransBase* a6 __asm("a6") = BASE_NAME;
  184.   register FLOAT d0 __asm("d0") = parm;
  185.   __asm __volatile ("jsr a6@(-0x3c)"
  186.   : "=r" (_res)
  187.   : "r" (a6), "r" (d0)
  188.   : "a0","a1","d0","d1");
  189.   return _res;
  190. }
  191. static __inline FLOAT 
  192. SPSqrt (BASE_PAR_DECL FLOAT parm)
  193. {
  194.   BASE_EXT_DECL
  195.   register FLOAT  _res  __asm("d0");
  196.   register struct MathTransBase* a6 __asm("a6") = BASE_NAME;
  197.   register FLOAT d0 __asm("d0") = parm;
  198.   __asm __volatile ("jsr a6@(-0x60)"
  199.   : "=r" (_res)
  200.   : "r" (a6), "r" (d0)
  201.   : "a0","a1","d0","d1");
  202.   return _res;
  203. }
  204. static __inline FLOAT 
  205. SPTan (BASE_PAR_DECL FLOAT parm)
  206. {
  207.   BASE_EXT_DECL
  208.   register FLOAT  _res  __asm("d0");
  209.   register struct MathTransBase* a6 __asm("a6") = BASE_NAME;
  210.   register FLOAT d0 __asm("d0") = parm;
  211.   __asm __volatile ("jsr a6@(-0x30)"
  212.   : "=r" (_res)
  213.   : "r" (a6), "r" (d0)
  214.   : "a0","a1","d0","d1");
  215.   return _res;
  216. }
  217. static __inline FLOAT 
  218. SPTanh (BASE_PAR_DECL FLOAT parm)
  219. {
  220.   BASE_EXT_DECL
  221.   register FLOAT  _res  __asm("d0");
  222.   register struct MathTransBase* a6 __asm("a6") = BASE_NAME;
  223.   register FLOAT d0 __asm("d0") = parm;
  224.   __asm __volatile ("jsr a6@(-0x48)"
  225.   : "=r" (_res)
  226.   : "r" (a6), "r" (d0)
  227.   : "a0","a1","d0","d1");
  228.   return _res;
  229. }
  230. static __inline FLOAT 
  231. SPTieee (BASE_PAR_DECL FLOAT parm)
  232. {
  233.   BASE_EXT_DECL
  234.   register FLOAT  _res  __asm("d0");
  235.   register struct MathTransBase* a6 __asm("a6") = BASE_NAME;
  236.   register FLOAT d0 __asm("d0") = parm;
  237.   __asm __volatile ("jsr a6@(-0x66)"
  238.   : "=r" (_res)
  239.   : "r" (a6), "r" (d0)
  240.   : "a0","a1","d0","d1");
  241.   return _res;
  242. }
  243. #undef BASE_EXT_DECL
  244. #undef BASE_PAR_DECL
  245. #undef BASE_PAR_DECL0
  246. #undef BASE_NAME
  247.  
  248. __END_DECLS
  249.  
  250. #endif /* _INLINE_MATHTRANS_H */
  251.